#include <iostream>

// fileA.c
extern void __attribute__((weak)) foo(); // 声明 foo 为弱引用

void bar() {
  if (foo) { // 检查 foo 是否已定义
    foo();    // 如果 foo 已定义，则调用它
  } else {
    // foo 未定义，执行其他操作
    printf("foo is not defined\n");
  }
}

int main() {
    std::cout << "Hello, World!" << std::endl;
    bar();
    return 0;
}
